package com.tfswx.fljdmxyy.dao;

import com.tfswx.fljdmxyy.model.QxXtGnfl;
import com.tfswx.fljdmxyy.query.gnfl.GnQueryResult;
import com.tfswx.fljdmxyy.query.gnfl.GnflQueryParam;
import com.tfswx.fljdmxyy.query.gnfl.GnflQueryResult;
import com.tfswx.fljdmxyy.query.gnfl.GnxxQueryResult;
import com.tfswx.fljdmxyy.query.rygl.RygnQueryResult;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 功能分类
 *
 * @author: 陈文佳
 * @date: 2022-10-13
 **/
@Mapper
public interface QxXtGnflMapper {

    /**
     * 新增功能分类
     *
     * @param param 新增功能分类入参
     * @return Integer 影响条数
     */
    Integer insertGnfl(QxXtGnfl param);

    /**
     * 删除功能分类
     *
     * @param param 删除功能分类入参
     * @return Integer 影响条数
     */
    Integer deleteGnfl(QxXtGnfl param);

    /**
     * 修改功能分类
     *
     * @param param 修改功能分类入参
     * @return Integer 影响条数
     */
    Integer updateGnfl(QxXtGnfl param);

    /**
     * 查询功能分类
     *
     * @param param 查询功能分类入参
     * @return QxXtGnfl 查询功能分类入参出参
     */
    QxXtGnfl getGnfl(QxXtGnfl param);

    /**
     * 查询功能分类列表
     *
     * @param param 查询功能分类列表入参
     * @return List<GnflQueryResult> 查询功能分类列表出参
     */
    List<GnflQueryResult> queryGnfl(GnflQueryParam param);

    /**
     * 查询最大序号
     *
     * @param param 查询最大序号入参
     * @return Integer 最大序号
     */
    Integer getGnflMaxXh(QxXtGnfl param);

    /**
     * 查询功能列表
     *
     * @return List<GnQueryResult> 查询功能列表出参
     */
    List<GnQueryResult> queryGnlb();

    /**
     * 查询功能信息
     *
     * @return List<GnxxQueryResult> 查询功能信息出参
     */
    List<GnxxQueryResult> queryGnxx();

    /**
     * 通过人员编码查询人员编码
     *
     * @param gnbmList 通过人员编码查询人员编码入参
     * @return List<RygnQueryResult> 通过人员编码查询人员编码出参
     */
    List<RygnQueryResult> queryGnByRybm(@Param("gnbmList") List<String> gnbmList);
}